package sil.mod;

import iface.Modificator;

/**
 * This class contains a collection of defense modifiers.
 * 
 * @author Marcus Lindner
 * @author Joana Otetelisanu
 */
public interface DefenseModifiers {

    /**
     * Circumstance modifiers.
     * 
     * @author Marcus Lindner
     * @author Joana Otetelisanu
     */
    public enum CircumstanceModificator implements Modificator {
	/** Attack from above. */
	ATTACK_FROM_ABOVE(-1, "Attack from Above"),
	/** attacker cannot be seen. */
	ATTACKER_CANNOT_BE_SEEN(-1, "Attacker cannot be seen"),
	/** Attack from the rear. */
	ATTACK_FROM_THE_REAR(-1, "Attack from the Rear"),
	/** Crossfire */
	CROSSFIRE(-1, "Crossfire"),
	/** Coordinates attack. */
	COORDINATED_ATTACK(-1, "Target of coordinated attack");

	/**
	 * Field modificator.
	 */
	private final int modificator;
	/**
	 * Field description.
	 */
	private final String description;

	/**
	 * Constructor for CircumstanceModificator.
	 * @param mod int
	 * @param desc String
	 */
	private CircumstanceModificator(int mod, String desc) {
	    this.modificator = mod;
	    this.description = desc;
	}

	/**
	 * {@inheritDoc}
	 * @return int
	 */
	@Override
	public int getModificator() {
	    return this.modificator;
	}

	/**
	 * {@inheritDoc}
	 * @return String
	 */
	@Override
	public String toString() {
	    final String text = this.description + "( " + this.modificator
		    + " )";
	    return text;
	}
    }
}
